/*
 * 
 *方法的整理与重构
 *
 *
 */
//定义app参数名称，并加载其它模块
var authApp=angular.module('authapp', ["ngCookies",'ngFileUpload','ui.bootstrap']);

//此为定位页面所用
authApp.value('page','home_page');

/*controller部分*/
//定义父controller，主要用于controller之间传递信息
authApp.controller("fcontroller",function($scope,$http,$cookies){
	//
	//****与分页相关的****
	//	
	//从接口中获取总的分页数量
	$scope.$on('$getPageCountFromApi',function(event,data){
		$scope.$broadcast('$getPageCount',data);
	});
	
	//捕获分页点击事件并传递currentPage信息到主controller
	 $scope.$on('$pageAction',function(event,data){
		 $scope.$broadcast('$pageChanged',data);
	 });
})


//主要操作controller
authApp.controller("homeController",function($scope,$http,Upload,$timeout,$sce){
	//针对此页面需要的参数 should edit
	$scope.isNotice=false;
	$scope.isPolicy=true;
	$scope.isDownload=true;
	$scope.uploadFile="";
	
	
	//**********主体方法
	//设置分页初始参数（最好与$scope.currentPage和$scope.itemsPerPage一致！！！！//这边之所以$scope.pageNumber=0是因为后台接口第一页为0）
	$scope.ifFirstTimeQuery=true;
	$scope.pageNumber=0;
	$scope.pageSize=10;
	//var queryMainApi=apis.queryAuthSysDownloadInfoPage;//！！！should edit
	
	$scope.queryMain=function(queryMainApi,type){
		$http({
			method:'post',
			url:queryMainApi,
			data:{'pageNumber':$scope.pageNumber,'pageSize':$scope.pageSize,'type':type},//！！！should edit
		}).success(function(response){
			if(response.code=="000000"){
				$scope.queryMainApiCallBack(response);
				//将返回的pagecount和current传到上面的controller
				$scope.$emit('$getPageCountFromApi',response.data);
			}else{
				alert(response.errorMsg);
			}
		}).error(function(){
			alert("网络出现故障，请确认网络是否连接");
		})
	};
	
	//捕捉分页点击事件并做处理
	$scope.$on("$pageChanged",function(event,data){
		if(!$scope.ifFirstTimeQuery){//解决第一次会调用两次接口的问题
			$scope.pageNumber=data.currentPage-1;//这边之所以-1是因为后台接口第一页为0
			$scope.queryMain();
		}
		$scope.ifFirstTimeQuery=false;//改变是否是第一次调用接口的状态
	})
	
	//$scope.queryMain();
	//$scope.queryNotice();
	
	/*下面为自已编辑部分*/
	
	$scope.queryNotice=function(){
		$scope.isNotice=false;
		$scope.isPolicy=true;
		$scope.isDownload=true;
		var queryMainApi=apis.queryAuthAnnouncementInfoPage;
		$scope.queryMain(queryMainApi,0);
	}
	
	$scope.queryPolicy=function(){
		$scope.isNotice=true;
		$scope.isPolicy=false;
		$scope.isDownload=true;
		var queryMainApi=apis.queryAuthAnnouncementInfoPage;
		$scope.queryMain(queryMainApi,2);
	}
	
	$scope.queryDown=function(){
		$scope.isNotice=true;
		$scope.isPolicy=true;
		$scope.isDownload=false;
		var queryMainApi=apis.queryAuthSysDownloadInfoPage;
		$scope.queryMain(queryMainApi,1);
	}
	
	//调用主接口成功之后的处理方法
	$scope.queryMainApiCallBack=function(response){
		if(response.code=="000000"){
			$scope.list=response.data.data;
			angular.forEach($scope.list,function(data,index,array){
			})
			//recordCount=response.data.recordCount;				
		}else{
			alert(response.errorMsg);
		}
	}
	
	/*
	 * 
	 * 其它操作方法
	 * 
	 */
	$scope.saveDownLoad=function(url){
		$http({
			method:'post',
			url:apis.saveFileDownload,
			data:{'fileUrl':url},
		}).success(function(response){
			if(response.code=="000000"){
				$scope.isAddM=true;
				$scope.queryMain();
				//$scope.name="";
				$scope.type="";
				$scope.fileName="";
				$scope.uploadFile="";
			}else{
				alert(response.errorMsg);
			}
		}).error(function(){
			alert("服务器打瞌睡了，请稍等！");
			$scope.isAddM=true;
		})
	}
	//下载
	$scope.turnToDownLoad=function(){
		if(window.confirm("是否确定下载 ？")){
			location.href=apis.downloadFileurl;
		}
	}

	//上传
	$scope.uploadFiles= function(file, errFiles,index) {
		$scope.f = file;
		$scope.errFile = errFiles && errFiles[0];
		if (file) {
			file.upload = Upload.upload({
				url: apis.uploadfile,
				data: {file: file}
			});

			file.upload.then(function (response) {
				$timeout(function () {
					if(response.data.code=="000000"){
						$scope.fileName=file.name;
						$scope.uploadFile=response.data.data;
						$scope.saveDownLoad(response.data.data);
					}
					else
						alert(response.data.errorMsg);
				});
			}, function (response) {
				if (response.status > 0)
					$scope.errorMsg = response.status + ': ' + response.data;
			}, function (evt) {
				file.progress = Math.min(100, parseInt(100.0 *
					evt.loaded / evt.total));
			});
		}
	}
	
	$scope.trunTo=function(pid){
		location.href="./static/education/views/admin/noticePage.html?pid="+pid;
	}
	
	/*$scope.queryNotice();*/
	
})

//分页controller
authApp.controller('pageDemo',function($scope){
	//定义分页的初始参数（不改动，不会影响功能）
	$scope.isPageShow=false;	
	$scope.currentPage=1;
	$scope.itemsPerPage=10;
	$scope.maxSize = 8;
	
	//需要接口返回的一些参数，如pagecount
	$scope.$on('$getPageCount',function(event,data){
        $scope.totalItems = parseInt(data.recordCount);
        $scope.bigTotalItems =parseInt(data.recordCount); 
        if( $scope.totalItems<10){
    		$scope.isPageShow=true;
    	}
	});
	//分页点击的触发事件
	 $scope.$watch('currentPage', function() {
		 var pagedata={currentPage:$scope.currentPage};
		 $scope.$emit('$pageAction',pagedata);
	  });
})
